package br.com.util.relatorios;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.List;

import javax.faces.context.FacesContext;

import br.com.model.entidade.Aluno;
import br.com.model.entidade.Aula;
import br.com.model.entidade.Progresso;

import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

public class RelatoriosAlunos {

	public void relacaoTurma(List<Aluno> alunos, Aula aula ) throws FileNotFoundException, DocumentException{
		
		ByteArrayOutputStream pdfOutputStram = new ByteArrayOutputStream();
		Document documento = new Document();
		String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") + "pdf/relacaoTurma.pdf";	
		System.out.println("o caminho he" + caminho);
		PdfWriter.getInstance(documento,new FileOutputStream(caminho));
		
		documento.open();
		
		//Criar lista de alunos com espaco apra assinatura
		
		PdfPTable tabela = new PdfPTable(2);
		
		
		
		PdfPCell celula = new PdfPCell();
		Paragraph p = new Paragraph();
		
		
		//adicionar o nome da Escola
		p = new Paragraph("Escola: " + aula.getTurma().getEscola().getNome());
		documento.add(p);		
		
		//adicionar o nome da turma
		p = new Paragraph("Turma: " + aula.getTurma().getNome());
		documento.add(p);
		
		//adicionar o nome da disciplina
		p = new Paragraph("Disciplina: " + aula.getDisciplina().getNome());
		documento.add(p);
		
		//adicionar o horario
		p = new Paragraph("Horário: " + aula.getHorario());
		documento.add(p);
		
		//adicionar uma linha em branco
		p = new Paragraph("  " );
		documento.add(p);
		
		tabela.setWidthPercentage(100);
		
		
		for (Aluno aluno : alunos) {
			p = new Paragraph(aluno.getUsuario().getNome());
			//Adicionar o aluno a tabela
			celula.addElement(p);
			celula.setPaddingTop(-8);
			celula.setPaddingBottom(3);
			tabela.addCell(celula);
			
			//Adicionar um espaco vazio a tabela
			celula = new PdfPCell();
			tabela.addCell(celula);
			
			
		}
		
		documento.add(tabela);
		documento.close();
		
	}
	
	public void historico(Aluno aluno) throws FileNotFoundException, DocumentException{
		
		ByteArrayOutputStream pdfOutputStram = new ByteArrayOutputStream();
		Document documento = new Document();
		String caminho = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/") + "pdf/historico.pdf";	
		System.out.println("o caminho he" + caminho);
		PdfWriter.getInstance(documento,new FileOutputStream(caminho));
		
		documento.open();
		
		
		Paragraph p = new Paragraph();
		PdfPCell celula = new PdfPCell();
		PdfPTable tabela = new PdfPTable(6);
		
		//Criando colunas
		
		p = new Paragraph("Ano");
		celula = new PdfPCell();
		celula.setPaddingTop(-7);
		celula.addElement(p);
		tabela.addCell(celula);
		
		p = new Paragraph("Disciplina");
		celula = new PdfPCell();
		celula.setPaddingTop(-7);
		celula.addElement(p);
		tabela.addCell(celula);
		
		p = new Paragraph("Turma");
		celula = new PdfPCell();
		celula.setPaddingTop(-7);
		celula.addElement(p);
		tabela.addCell(celula);
		
		p = new Paragraph("Freq%");
		celula = new PdfPCell();
		celula.setPaddingTop(-7);
		celula.addElement(p);
		tabela.addCell(celula);
		
		p = new Paragraph("Média");
		celula = new PdfPCell();
		celula.addElement(p);
		celula.setPaddingTop(-7);
		tabela.addCell(celula);
		
		p = new Paragraph("Situação");
		celula = new PdfPCell();
		celula.setPaddingTop(-7);
		celula.addElement(p);
		tabela.addCell(celula);
		
		
		for(Progresso progresso: aluno.getProgressos()){
			progresso.getAula().getDisciplina();
			
			//Criando colunas
			
			p = new Paragraph(progresso.getAula().getTurma().getAno());
			celula = new PdfPCell();
			celula.setPaddingTop(-7);
			celula.addElement(p);
			tabela.addCell(celula);
			
			p = new Paragraph(progresso.getAula().getDisciplina().getNome());
			celula = new PdfPCell();
			celula.setPaddingTop(-7);
			celula.addElement(p);
			tabela.addCell(celula);
			
			p = new Paragraph(progresso.getAula().getTurma().getNome());
			celula = new PdfPCell();
			celula.setPaddingTop(-7);
			celula.addElement(p);
			tabela.addCell(celula);
			
			p = new Paragraph("Freq%");
			celula = new PdfPCell();
			celula.setPaddingTop(-7);
			celula.addElement(p);
			tabela.addCell(celula);
			
			p = new Paragraph(progresso.getMediaAnual());
			celula = new PdfPCell();
			celula.addElement(p);
			celula.setPaddingTop(-7);
			tabela.addCell(celula);
			
			p = new Paragraph("Situação");
			celula = new PdfPCell();
			celula.setPaddingTop(-7);
			celula.addElement(p);
			tabela.addCell(celula);
			
		}
		
		tabela.setWidthPercentage(100);
		
		documento.add(tabela);
		documento.close();
		
	}

}
